﻿using System.Xml.Linq;

namespace Songhay.OpenXml
{
    /// <summary>
    /// Atomizes selected Open XML WordprocessingML elements.
    /// </summary>
    public static class SonghayW
    {
        public static readonly XNamespace w = "http://schemas.openxmlformats.org/wordprocessingml/2006/main";
        public static readonly XName @default = w + "default";
        public static readonly XName w_name = w + "w";

        public static readonly XName abstractNum = w + "abstractNum";
        public static readonly XName abstractNumId = w + "abstractNumId";
        public static readonly XName alias = w + "alias";
        public static readonly XName annotationRef = w + "annotationRef";
        public static readonly XName b = w + "b";
        public static readonly XName basedOn = w + "basedOn";
        public static readonly XName bidiVisual = w + "bidiVisual";
        public static readonly XName body = w + "body";
        public static readonly XName br = w + "br";
        public static readonly XName cellDel = w + "cellDel";
        public static readonly XName cellIns = w + "cellIns";
        public static readonly XName cellMerge = w + "cellMerge";
        public static readonly XName comment = w + "comment";
        public static readonly XName commentRangeEnd = w + "commentRangeEnd";
        public static readonly XName commentRangeStart = w + "commentRangeStart";
        public static readonly XName commentReference = w + "commentReference";
        public static readonly XName comments = w + "comments";
        public static readonly XName continuationSeparator = w + "continuationSeparator";
        public static readonly XName cr = w + "cr";
        public static readonly XName customXmlDelRangeEnd = w + "customXmlDelRangeEnd";
        public static readonly XName customXmlDelRangeStart = w + "customXmlDelRangeStart";
        public static readonly XName customXmlInsRangeEnd = w + "customXmlInsRangeEnd";
        public static readonly XName customXmlInsRangeStart = w + "customXmlInsRangeStart";
        public static readonly XName customXmlMoveFromRangeEnd = w + "customXmlMoveFromRangeEnd";
        public static readonly XName customXmlMoveFromRangeStart = w + "customXmlMoveFromRangeStart";
        public static readonly XName customXmlMoveToRangeEnd = w + "customXmlMoveToRangeEnd";
        public static readonly XName customXmlMoveToRangeStart = w + "customXmlMoveToRangeStart";
        public static readonly XName dayLong = w + "dayLong";
        public static readonly XName dayShort = w + "dayShort";
        public static readonly XName del = w + "del";
        public static readonly XName delInstrText = w + "delInstrText";
        public static readonly XName delText = w + "delText";
        public static readonly XName docDefaults = w + "docDefaults";
        public static readonly XName document = w + "document";
        public static readonly XName drawing = w + "drawing";
        public static readonly XName element = w + "element";
        public static readonly XName endnote = w + "endnote";
        public static readonly XName endnoteReference = w + "endnoteReference";
        public static readonly XName fldChar = w + "fldChar";
        public static readonly XName fldCharType = w + "fldCharType";
        public static readonly XName fldData = w + "fldData";
        public static readonly XName fldSimple = w + "fldSimple";
        public static readonly XName footnote = w + "footnote";
        public static readonly XName footnoteReference = w + "footnoteReference";
        public static readonly XName ftr = w + "ftr";
        public static readonly XName gridSpan = w + "gridSpan";
        public static readonly XName hanging = w + "hanging";
        public static readonly XName hdr = w + "hdr";
        public static readonly XName hyperlink = w + "hyperlink";
        public static readonly XName i = w + "i";
        public static readonly XName id = w + "id";
        public static readonly XName ilvl = w + "ilvl";
        public static readonly XName ind = w + "ind";
        public static readonly XName ins = w + "ins";
        public static readonly XName instrText = w + "instrText";
        public static readonly XName isLgl = w + "isLgl";
        public static readonly XName jc = w + "jc";
        public static readonly XName lang = w + "lang";
        public static readonly XName lastRenderedPageBreak = w + "lastRenderedPageBreak";
        public static readonly XName left = w + "left";
        public static readonly XName lvl = w + "lvl";
        public static readonly XName lvlJc = w + "lvlJc";
        public static readonly XName lvlOverride = w + "lvlOverride";
        public static readonly XName lvlRestart = w + "lvlRestart";
        public static readonly XName lvlText = w + "lvlText";
        public static readonly XName monthLong = w + "monthLong";
        public static readonly XName monthShort = w + "monthShort";
        public static readonly XName moveFrom = w + "moveFrom";
        public static readonly XName moveFromRangeEnd = w + "moveFromRangeEnd";
        public static readonly XName moveFromRangeStart = w + "moveFromRangeStart";
        public static readonly XName moveTo = w + "moveTo";
        public static readonly XName moveToRangeEnd = w + "moveToRangeEnd";
        public static readonly XName moveToRangeStart = w + "moveToRangeStart";
        public static readonly XName name = w + "name";
        public static readonly XName noBreakHyphen = w + "noBreakHyphen";
        public static readonly XName noProof = w + "noProof";
        public static readonly XName num = w + "num";
        public static readonly XName numFmt = w + "numFmt";
        public static readonly XName numId = w + "numId";
        public static readonly XName numPr = w + "numPr";
        public static readonly XName numStyleLink = w + "numStyleLink";
        public static readonly XName numberingChange = w + "numberingChange";
        public static readonly XName outlineLvl = w + "outlineLvl";
        public static readonly XName p = w + "p";
        public static readonly XName pPr = w + "pPr";
        public static readonly XName pPrChange = w + "pPrChange";
        public static readonly XName pPrDefault = w + "pPrDefault";
        public static readonly XName pStyle = w + "pStyle";
        public static readonly XName pTab = w + "pTab";
        public static readonly XName permEnd = w + "permEnd";
        public static readonly XName permStart = w + "permStart";
        public static readonly XName pgNum = w + "pgNum";
        public static readonly XName pict = w + "pict";
        public static readonly XName proofErr = w + "proofErr";
        public static readonly XName r = w + "r";
        public static readonly XName rFonts = w + "rFonts";
        public static readonly XName rPr = w + "rPr";
        public static readonly XName rPrChange = w + "rPrChange";
        public static readonly XName rPrDefault = w + "rPrDefault";
        public static readonly XName rsid = w + "rsid";
        public static readonly XName rsidDel = w + "rsidDel";
        public static readonly XName rsidP = w + "rsidP";
        public static readonly XName rsidR = w + "rsidR";
        public static readonly XName rsidRDefault = w + "rsidRDefault";
        public static readonly XName rsidRPr = w + "rsidRPr";
        public static readonly XName rsidSect = w + "rsidSect";
        public static readonly XName rsidTr = w + "rsidTr";
        public static readonly XName rStyle = w + "rStyle";
        public static readonly XName sdt = w + "sdt";
        public static readonly XName sdtContent = w + "sdtContent";
        public static readonly XName sdtPr = w + "sdtPr";
        public static readonly XName sectPr = w + "sectPr";
        public static readonly XName sectPrChange = w + "sectPrChange";
        public static readonly XName separator = w + "separator";
        public static readonly XName shd = w + "shd";
        public static readonly XName smallCaps = w + "smallCaps";
        public static readonly XName smartTag = w + "smartTag";
        public static readonly XName softHyphen = w + "softHyphen";
        public static readonly XName spacing = w + "spacing";
        public static readonly XName start = w + "start";
        public static readonly XName startOverride = w + "startOverride";
        public static readonly XName strike = w + "strike";
        public static readonly XName style = w + "style";
        public static readonly XName styleId = w + "styleId";
        public static readonly XName suff = w + "suff";
        public static readonly XName sym = w + "sym";
        public static readonly XName t = w + "t";
        public static readonly XName tab = w + "tab";
        public static readonly XName tag = w + "tag";
        public static readonly XName tbl = w + "tbl";
        public static readonly XName tblBorders = w + "tblBorders";
        public static readonly XName tblCellMar = w + "tblCellMar";
        public static readonly XName tblCellSpacing = w + "tblCellSpacing";
        public static readonly XName tblGridChange = w + "tblGridChange";
        public static readonly XName tblInd = w + "tblInd";
        public static readonly XName tblLayout = w + "tblLayout";
        public static readonly XName tblLook = w + "tblLook";
        public static readonly XName tblOverlap = w + "tblOverlap";
        public static readonly XName tblPr = w + "tblPr";
        public static readonly XName tblPrChange = w + "tblPrChange";
        public static readonly XName tblPrExChange = w + "tblPrExChange";
        public static readonly XName tblStyle = w + "tblStyle";
        public static readonly XName tblStyleColBandSize = w + "tblStyleColBandSize";
        public static readonly XName tblStylePr = w + "tblStylePr";
        public static readonly XName tblStyleRowBandSize = w + "tblStyleRowBandSize";
        public static readonly XName tblW = w + "tblW";
        public static readonly XName tblpPr = w + "tblpPr";
        public static readonly XName tc = w + "tc";
        public static readonly XName tcPr = w + "tcPr";
        public static readonly XName tcPrChange = w + "tcPrChange";
        public static readonly XName tcW = w + "tcW";
        public static readonly XName textbox = w + "textbox";
        public static readonly XName tooltip = w + "tooltip";
        public static readonly XName tr = w + "tr";
        public static readonly XName trPr = w + "trPr";
        public static readonly XName trPrChange = w + "trPrChange";
        public static readonly XName txbxContent = w + "txbxContent";
        public static readonly XName type = w + "type";
        public static readonly XName u = w + "u";
        public static readonly XName uri = w + "uri";
        public static readonly XName vMerge = w + "vMerge";
        public static readonly XName val = w + "val";
        public static readonly XName vertAlign = w + "vertAlign";
        public static readonly XName yearLong = w + "yearLong";
        public static readonly XName yearShort = w + "yearShort";

        public static readonly XName[] BlockLevelContentContainers =
        {
            SonghayW.body,
            SonghayW.tc,
            SonghayW.txbxContent,
            SonghayW.hdr,
            SonghayW.ftr,
            SonghayW.endnote,
            SonghayW.footnote
        };

        public static readonly XName[] SubRunLevelContent =
        {
            SonghayW.br,
            SonghayW.cr,
            SonghayW.dayLong,
            SonghayW.dayShort,
            SonghayW.drawing,
            SonghayW.drawing,
            SonghayW.monthLong,
            SonghayW.monthShort,
            SonghayW.noBreakHyphen,
            SonghayW.pTab,
            SonghayW.pgNum,
            SonghayW.pict,
            SonghayW.softHyphen,
            SonghayW.sym,
            SonghayW.t,
            SonghayW.tab,
            SonghayW.yearLong,
            SonghayW.yearShort,
            SonghayMC.AlternateContent,
        };
    }
}
